در این پست می خواهم نحوه اتصال دو میکرو را به هم را با استفاده از رابط درگاه سریال (UART) را با یک مثال ساده نمایش دهم
نکته: در این مثال توجه کنید تنظیمات هردو میکرو مثل هم م هست
برنامه میکرو اول:
/*****************************************************
Chip type : ATmega16
Program type : Application
Clock frequency : 16.000000 MHz
Memory model : Small
External SRAM size : 0
Data Stack size : 256
*****************************************************/
#include
#include
#include
int a=0;
void main(void)
{
// USART initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity
// USART Receiver: On
// USART Transmitter: On
// USART Mode: Asynchronous
// USART Baud Rate: 9600
UCSRA=0x00;
UCSRB=0x18;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x4D;
while (1)
{
putchar(a);
delay_ms(250);
a++;
if (a==99) a=0;
};
}
برنامه میکرو دوم :
/*****************************************************
Chip type : ATmega16
Program type : Application
Clock frequency : 16.000000 MHz
Memory model : Small
External SRAM size : 0
Data Stack size : 256
*****************************************************/
#include
#include
#include
#asm
.EQU __lcd_port=0x18 ;PORTB
#endasm
#include
#include
char s1[8];
int a=0;
void main(void)
{
// USART initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity
// USART Receiver: On
// USART Transmitter: On
// USART Mode: Asynchronous
// USART Baud Rate: 9600
UCSRA=0x00;
UCSRB=0x18;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x4D;
lcd_init(16);
while (1)
{
lcd_gotoxy(8,0);
a=getchar();
lcd_clear();
itoa(a,s1);
lcd_puts(s1);
delay_ms(250);
};
}